Programmable logic controllers (PLCs) are commonly used in industrial equipment such as assembly lines and machine tools to sequentially operate the equipment in accordance with a control program stored in the controller. The control program is stored in a memory and includes instructions which are read out in rapid sequence to monitor the condition of selected sensing devices, frequently remotely located, on the controlled equipment. These instructions generally activate or deactivate selected operating devices on the controlled equipment as determined by the status of one or more sensors. The typical processor in a PLC rapidly executes programmable controller-type instructions which call for the manipulation of single-bit input data in the control of single-bit output data.
The operating program is loaded into the PLC's memory by means of a programmer which may be in the form of a personal computer (PC). The operating program is in a ladder logic format consisting of a large number of rungs each containing a label which describes a specific input/output (I/O) point within the PLC. The ladder rungs containing the label file are typically referred collectively to as a "label field." Many PLCs are also provided with a second field, commonly referred to as a "comment field." The comment field includes various comments each relating to one of the labels and stored in the same rung as its associated label. Each comment is typically in the form of a short, terse expression and serves as an aid to a programmer in facilitating programmer identification of its associated label. The comments are not used by the operating program which controls the operation of the PLC, but rather allow the programmer, or system user, to describe in some detail a concept associated with a given label which is written as a brief, typically abbreviated, statement.
Referring to FIG. 1, there are shown two examples of the format of programming labels for use in programming a conventional PLC. The label mode allows the assignment of alphanumeric names to any I/O address and storage register address of the PLC. Labels are useful for identifying external I/Os, internal relays, and data registers in terminology relevant to the operator, maintenance personnel and/or programmer. Once programmed, the labels can be displayed with the ladder rungs on a monitor if desired. Each label can consist of 1 to 18 characters in the example of FIG. 1 and is stored in a first label field, or record. If more characters are desired, these may be programmed as a label comment in a second field known as the comment field. A designated symbol, such as a colon in the example of FIG. 1, separates the label and comment fields. As indicated above, the comment following the colon is typically a short, terse expression which serves as an aid in facilitating identification of its associated label. The contents of the comment field has heretofore been ignored and not used by the operating program stored in the PLC. The first comment in FIG. 1 relates to limit switch LS-12, which is stored in memory location 1-01. The label comment "LOCATED ON MACH #2" in the comment field indicates that the label relates to limit switch LS-12 on machine #2. The second programming label shown in FIG. 1 is stored in memory locations 1-16 and relates to motor starter MS-11, with the associated label comment indicating that this label relates to the motor starter MS-11 in the main conveyor.
A PLC makes decisions based on a user-developed control program. The control program is developed using ladder diagram programming. Ladder programming is similar to relay logic diagrams used to represent relay control circuits. Referring to FIGS. 2a and 2b, there are respectively shown simplified examples of a relay logic diagram and the equivalent ladder diagram rung. In the ladder diagram, all inputs are shown as contact symbols and all outputs as coil symbols along with an associated number which is the address. These "address" numbers reference either the location of the external input/output connections to the PLC or the internal relay equivalent address within the PLC. As indicated in the ladder diagram of FIG. 2b, coil 02-09 will be turned ON if either or both of the following is true:
contacts 01-01, 01-02 and 20-01 are closed; and PA1 contacts 01-01, 01-03 and 02-01 are closed.
It should also be noted that the flow of continuity is from left to right. Before writing a program, the address numbers for the inputs, outputs and internal relays must be assigned.
Once the operating program is programmed into the PLC either by a programmer or the programming device, additional instructions relating to functions other than those performed by the operating program must be subsequently programmed into the PLC. These additional functions are sometimes referred to as "secondary functions", and they may include functions such as diagnostics for the operating system or an operator interface program including the display of system operating information. Instructions relating to these secondary operations require additional PLC memory and thus indirectly restrict the primary operating program of the PLC. In addition, this multistep programming of the PLC is inefficient and increases required programmer time and operating system expense.
The present invention addresses the aforementioned limitations of the prior art by providing for the simultaneous loading of the operating program into a PLC with any number of secondary programs such as an operator interface program or a systems diagnostic program. The present invention makes more efficient use of programming time as well as PLC memory to simultaneously load operating program instructions as well as secondary function instructions into a PLC.